package com.dengqi.mymodule.activity.glide.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.dengqi.mymodule.R;
import com.module.imagelib.glide.ImageLoader;
import com.module.imagelib.glide.strategy.GlideStrategy;
import com.module.imagelib.glide.transfor.GlideCircleTransform;
import com.module.imagelib.glide.transfor.GlideRoundTransform;

/**
 * Created by dell on 2018/6/21
 */

public class GridPicAdapter extends BaseAdapter {

    String url;
    Context mContext;
    int COUNT = 13;

    public GridPicAdapter(Context mContext, String url) {
        this.mContext = mContext;
        this.url = url;
        ImageLoader.getInstance().setImageLoader(new GlideStrategy(mContext));
    }

    @Override
    public int getCount() {
        return COUNT;
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        view = LayoutInflater.from(mContext).inflate(R.layout.item_grid_pic, null);
        final TextView textView = view.findViewById(R.id.textView);
        final ImageView glideView = view.findViewById(R.id.glideView);
        int width = 300;
        int height = 300;
        switch (i) {
            case 0:
                /**一般*/
                //Glide使用
//                GlideApp.with(this).load(url).apply(option).override(width, height).into(this);
                //自定义GlideView使用
//                glideView.url(url).size(width, height).crossFade().load();
                //自定义GlideApp使用
//                GlideApp.with(mContext).load(url).cache().override(width, height).into(glideView);
                //ImageLoader使用
//                ImageLoader_v1.getInstance().loadNormal(mContext, url).size(width, height).into(glideView);
                //ImageLoader2使用
                ImageLoader.getInstance().load(url).into(glideView);
                break;
            case 1:
                /**切割*/
                ImageLoader.getInstance().load(url).centerCrop().into(glideView);
                break;
            case 2:
                /**设置控件宽高*/
                //Glide使用
//                getLayoutParams().width = width;
//                getLayoutParams().height = height;
//                GlideApp.with(this).load(url).apply(option).into(this);
                //自定义GlideView使用
//                glideView.url(url).params(width, height).load();
                //自定义GlideApp使用（做不了）
//                GlideApp.with(mContext).load(url).normalDef().into(glideView);
                //ImageLoader使用（自适应屏幕宽度）
//                ImageLoader_v1.getInstance().loadNormal(mContext, url).centerCrop().into(glideView, width, height);
                //ImageLoader2使用 （xml不固定宽高，view自适应图片宽高 先以width为基准，height自适应。如果height不够，以height为基准，width自适应。）
                glideView.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
                ImageLoader.getInstance().load(url).asBitmap().size(400, 300).into(glideView);
                break;
            case 3:
                /**圆角*/
                //Glide使用
//                GlideApp.with(this).load(url).apply(option).transform(new GlideRoundTransform(radius)).into(this);
                //自定义GlideView使用
//                glideView.url(url).round(10).size(500, 300).load();
                //自定义GlideApp使用
//                GlideApp.with(mContext).load(url).normalDef().round(10).override(500, 300).into(glideView);
                //ImageLoader使用
//                ImageLoader_v1.getInstance().loadNormal(mContext, url).size(500, 300).round(10).into(glideView);
                //ImageLoader2使用
                ImageLoader.getInstance().load(url).round(10).into(glideView);
                break;
            case 4:
                /**圆形*/
                //Glide使用
//                GlideApp.with(this).load(url).apply(option).transform(new GlideCircleTransform()).into(this);
                //自定义GlideView使用
//                glideView.url(url).circle().size(width, height).load();
                //自定义GlideApp使用
//                GlideApp.with(mContext).load(url).normalDef().circle().override(500, 300).into(glideView);
                //ImageLoader使用
//                ImageLoader_v1.getInstance().loadNormal(mContext, url).size(500, 300).circle().into(glideView);
                //ImageLoader2使用
                ImageLoader.getInstance().load(url).circle().into(glideView);
                break;
            case 5:
                /**矩形*/
                //自定义GlideView使用
//                glideView.url(url).square().size(500, 300).load();
                //自定义GlideApp使用
//                GlideApp.with(mContext).load(url).normalDef().rect().override(500, 300).into(glideView);
//                ImageLoader.getInstance().load(url).into(glideView);
//

                Glide.with(mContext).load(url)
//                        .thumbnail(5)
                        .into(glideView);
                break;
            case 6:
                /**gif*/
                //自定义GlideView使用
//                glideView.asGif("https://upfile.asqql.com/2009pasdfasdfic2009s305985-ts/2018-5/201852721375172917.gif").params(width, height).load();
                //ImageLoader使用
//                ImageLoader_v1.getInstance().load(mContext, "https://upfile.asqql.com/2009pasdfasdfic2009s305985-ts/2018-5/201852721375172917.gif").into(glideView, 2, 1);
                //ImageLoader2使用
                ImageLoader.getInstance().load("https://upfile.asqql.com/2009pasdfasdfic2009s305985-ts/2018-5/201852721375172917.gif").into(glideView);
                break;
            case 7:
                Glide.with(mContext).load(url)
                        .transform(new GlideCircleTransform())
                        .into(glideView);
                break;
            case 8:
                Glide.with(mContext).load(url)
                        .transform(new GlideRoundTransform(10))
                        .into(glideView);
                break;
            case 9:
                Glide.with(mContext).load(url)
                        .transform(new GlideRoundTransform())
                        .into(glideView);
//                Glide.with(mContext).load(url)
//                        .transform(new GlideNormalTransform())
//                        .into(glideView);
                break;
            case 10:
                Glide.with(mContext).load(url)
                        .transform(new GlideCircleTransform(10,  "#DC143C"))
                        .into(glideView);
                break;
            case 11:
                Glide.with(mContext).load(url)
                        .transform(new GlideRoundTransform(10, 10, "#DC143C"))
                        .into(glideView);
                break;
            case 12:
                Glide.with(mContext).load(url)
                        .transform(new GlideRoundTransform(10, "#DC143C"))
                        .into(glideView);
//                Glide.with(mContext).load(url)
//                        .transform(new GlideNormalTransform(10, "#DC143C"))
//                        .into(glideView);
                break;

        }
        new android.os.Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                textView.setText(glideView.getWidth() + " - " + glideView.getHeight());
            }
        }, 500);
        return view;
    }
}